package com.system.service;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import com.common.base.persistence.Page;
import com.system.vo.SysRoleVO;
import com.system.vo.SysStaffVO;

public interface ISysStaffService {

	List<SysStaffVO> getStaffList(Page<SysStaffVO> page, SysStaffVO sysStaffVO);

	/**
	 * @方法说明
	 *  通过员工编号查询员工基本信息
	 * @param staff_id :员工编号
	 * @创建日期 2017年4月19日
	 */
	public SysStaffVO queryStaffDetail(String staff_id);

	/**
	 * @方法说明
	 *  通过员工编号查询员工基本信息
	 * @param staff_id :员工编号
	 * @创建日期 2017年8月25日
	 */
	public int countStaffById(String staff_id);


	/**
	 * 根据员工姓名，模糊搜索员工
	 * @param staff_name ：员工姓名
	 * @return List<SysStaffVO> ：满足条件的员工集合
	 */
	List<SysStaffVO> queryStaffByName(String staff_name);

	/**
	 *
	* 方法名:  queryNameId
	* 方法功能描述:    查询所有员工的id姓名
	* @return List<SysStaffVO>
	* @Author:   zh
	* @Create Date:   2017年6月21日
	 */
	Map<String, String> queryNameId();

    public SysRoleVO findRoleById(String roleId);//通过角色ID来查找对应的角色标志。

    public List<String> findMenuIdByRoleId(String roleId);//通过机构号查询菜单ID

    public List<SysStaffVO>findStaffSBymap(Map map, Page<SysStaffVO> page);//多条件分页查询 员工
    
    public void editStaffInfoAndRoles(SysStaffVO staff, String[] roleIds)throws Exception;
    
    public List<SysRoleVO> findRolesByUserId(String staff_id);//通过用户ID查询用户已拥有角色

    /**
     * 根据用户ID查询用户
     * @param staffId
     * @return
     */
	SysStaffVO findById(String staffId);
    public String findRolesIdByStaffId(String staffId);//通过用户名来查找对应的角色标志。

	/**
	 * 添加员工
	 * @param vo
	 */
	boolean addStaff(SysStaffVO vo);

	/**
	 * 删除员工
	 * @param staffId 员工编号
	 */
	boolean deleteStaff(String staffId);

	/**
	*删除用户下的所有角色
	 */
	boolean deleteStaffRoles(String staffId);

	/**
	 * 修改员工
	 * @param vo
	 * @throws SQLException
	 */
	boolean updateStaff(SysStaffVO vo);
	
	SysStaffVO queryStaffOne(String staffId);

	void modifiyPsw(String newPsw,String staffId) throws Exception;
	//通过 员工账号查询
	public SysStaffVO  findAccountByName(String staffName);
	
}
